﻿using UnityEngine;
using UnityEngine.Events;

namespace GameLogic
{
    public class FightControler
    {
        protected UnityEvent<Vector2Int> m_OnMoveDirChangedCallback = new UnityEvent<Vector2Int>();
        protected UnityEvent<Vector2Int> m_OnFocusPositionCallback = new UnityEvent<Vector2Int>();
        protected UnityEvent<Vector2Int> m_OnAimPositionCallback = new UnityEvent<Vector2Int>();
        protected UnityEvent<bool> m_OnFireChangedCallback = new UnityEvent<bool>();

        protected Vector2Int m_AimPosition = new Vector2Int();
        protected Vector2Int m_FocusPosition = new Vector2Int(); 
        protected Vector2Int m_TargetMoveVec = new Vector2Int();
        protected bool m_Fire = false;
        #region 公有属性

        public UnityEvent<Vector2Int> OnMoveDirChangedCallback { get => m_OnMoveDirChangedCallback; }
        public UnityEvent<Vector2Int> OnFocusPositionChangedCallback { get => m_OnFocusPositionCallback; }
        public UnityEvent<Vector2Int> OnAimPositionCallback { get => m_OnAimPositionCallback; }
        public UnityEvent<bool> OnFireChangedCallback { get => m_OnFireChangedCallback; }
        #endregion

        #region 生命周期回调
        public virtual void Awake()
        {
        }
        public virtual void Update()
        {
        }
        #endregion
        #region 开放接口
        public virtual void OnStartFight()
        {
        }
        #endregion
        #region 开放接口
        #endregion

        #region 私有接口
        #endregion

    }
}
